	
#pragma once

using namespace System;

namespace HidLib
{
	public ref class HidDeviceIdentifier
	{
	public:
		HidDeviceIdentifier(String^ DevicePath);
		HidDeviceIdentifier(int VendorId);
		HidDeviceIdentifier(int VendorId, int ProductId);

		enum class IdentifierTypes
		{
			Any,
			VendorId,
			VendorAndProductId,
			DevicePath
		};

		property IdentifierTypes Type
		{
			IdentifierTypes get()
			{
				return _IdentifierType;
			}
		};

		property String^ DevicePath
		{
			String^ get()
			{
				return _DevicePath;
			}
		};

		property int VendorId
		{
			int get()
			{
				return _VendorId;
			}
		};

		property int ProductId
		{
			int get()
			{
				return _ProductId;
			}
		};

	private:
		IdentifierTypes _IdentifierType;
		String^ _DevicePath;
		int _VendorId;
		int _ProductId;
	};
}